home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
THINKC
/
4_0
/
UUPC3
/
FILES_IN
/
DCP.H
next >
Wrap
Text File
|
1992-02-05
|
6KB
|
184 lines
/* DCP a uucp clone. Copyright Richard H. Lamb 1985,1986,1987 */
#include <stdio.h> /* Standard UNIX definitions */
#include "host.h" /* Host specific definitions */
FILE * FOPEN();
int CREAT();
#define SYSTEMS "systems"
#define LOGFILE "LOGFILE"
#define SYSLOG "SYSLOG"
#define SCHEDULE "schedule"
#define MSGTIME 20
#define MAXPACK 256
#define MAXPACKCODE 4
#define DFLPACK 64
#define PORTBUFSIZ 2048
#define ERROR 100
#define EMPTY 101
#define SLAVE 0
#define MASTER 1
#ifndef TRUE
#define TRUE (-1)
#define FALSE 0
#endif
/*#define SAME 0*/
#define RETRY -2
#define FAILED -1
#define OK 0
#define EQUAL 0
/* L.sys field defines */
#define FLD_REMOTE 0
#define FLD_CCTIME 1
#define FLD_DEVICE 2
#define FLD_TYPE 3
#define FLD_SPEED 4
#define FLD_PHONE 5
#define FLD_PROTO 6
#define FLD_EXPECT 7
#define FLD_SEND 8
/**/
typedef int (*procref)();
typedef struct {
char type;
procref a;
procref b;
procref c;
procref d;
procref e;
procref f;
procref g;
procref h;
procref i;
} Proto;
/* the various protocols available. Add here for others */
extern procref getpkt, sendpkt, openpk, closepk, filepkt, eofpkt,
getmsg, sendmsg, sendresp;
extern int ggetpkt(), gsendpkt(), gopenpk(), gclosepk(), gfilepkt(), geofpkt(),
gwrmsg(), grdmsg(), gsendresp();
extern int fgetpkt(), fsendpkt(), fopenpk(), fclosepk(), ffilepkt(), feofpkt(),
fwrmsg(), frdmsg(), fsendresp();
/*
extern int kgetpkt(), ksendpkt(), kopenpk(), kclosepk();
extern int rgetpkt(), rsendpkt(), ropenpk(), rclosepk();
extern int tgetpkt(), tsendpkt(), topenpk(), tclosepk();
*/
typedef enum
{ phantom, /* Entry not fully initialized */
localhost, /* This entry is for ourselves */
routed, /* This entry is actually a path */
gatewayed, /* This entry is delivered to via */
/* an external program on local sys */
aliasof, /* This entry is alias of VIA system*/
nocall, /* real host, never called */
inprogress, /* Call now active */
callback_req, /* System must call us back */
dial_failed, /* Hardcoded auto-dial failed */
script_failed, /* script in L.SYS failed */
max_retry, /* Have given up calling this sys */
too_soon, /* In retry mode, too soon to call */
succeeded, /* self-explanatory */
wrong_host, /* Call out failed, wrong system */
unknown_host, /* Call in cailed, unknown system */
wrong_time, /* Unable to call because of time */
last_status }
hostatus;
struct HostStats {
time_t ltime; /* Last time this host was called */
time_t lconnect; /* Last time we actually connected */
unsigned long calls; /* Total number of calls to host */
unsigned long connect; /* Total length of connections to host */
unsigned long fsent; /* Total files sent to this host */
unsigned long freceived; /* Total files received from this host */
unsigned long bsent; /* Total bytes sent to this host */
unsigned long breceived; /* Total bytes received from this host */
unsigned long errors; /* Total transmission errors noted */
unsigned long packets; /* Total packets exchanged */
unsigned long bstart; /* Bytes sent/rcvd at beginning of file*/
hostatus save_hstatus; /* host status, as defined by hostatus */
};
typedef struct {
time_t time_secs;
char name[40];
char status[40];
int failures;
} status_record;
/**/
extern int pktsize; /* packet size for this pro*/
extern FILE *logfile; /* system log file */
extern FILE *syslog; /* system log file */
extern FILE *fw; /* cfile pointer */
extern char cfile[80]; /* work file pointer */
extern int remote; /* -1 means we're remote*/
extern int maxhops;
extern int sync_timeout;
extern int PacketTimeout;
extern int MaxErr;
extern int msgtime;
extern int pktsize; /* packet size for this protocol*/
extern int xfer_bufsize;
extern int findwork;
extern int xfer_problems;
extern int del_file_flag;
extern char fromfile[132];
extern char rmtfname[132];
extern char hostfile[132]; /* host version of fromfile */
extern char tofile[132];
extern char state; /* present state */
extern int fp; /* current disk file ptr */
extern int size; /* nbytes in buff */
extern FILE *fsys;
extern char Rmtname[20];
extern char rmtname[20];
extern char gotname[20];
extern char gotitfrom[BUFSIZ];
extern char gotfromuser[BUFSIZ];
extern char callcause[64];
extern char *cctime;
extern char proto[5];
extern time_t runStartSecs;
extern int failureCount;
extern char sysline[BUFSIZ*2];
extern char s_systems[64];
extern char s_logfile[64];
extern char s_syslog[64];
extern char s_schedule[64];
extern char s_statfile[64];
extern char *flds[60];
extern int kflds;
extern int debuglevel; /* debugging flag */
extern unsigned int checksum();
extern void zzz(int secs);
extern char *index();
extern char *rindex();
extern char *curdir;
#ifdef Upgrade
extern long int systimeout;
#endif Upgrade
extern struct HostStats remote_stats;
extern status_record Last;